package admin

import (
	"github.com/gin-gonic/gin"
	"log"
	"simai_oa/controller"
	"simai_oa/model"
)

// Create
//
//	@Summary	创建
//	@Tags		后台-分类
//	@param		name			query		int	false	"分类名"
//	@param		level			query		int	false	"分类级别"
//	@param		is_tab			query		int	false	"是否显示"
//	@param		sort			query		int	false	"排序"
//	@param		parent_category	query		int	false	"父级分类id"
//	@Success	200				{string}	json{"code","message"}
//	@Router		/admin/category/create [POST]
func Create(c *gin.Context) {
	models := model.CategoryInfo{}
	err := c.Bind(&models)
	if err != nil {
		log.Println(err)
		controller.ResErrSrv(c, err)
		return
	}
	cateInfo, err := model.AddCategory(&models)
	if err != nil {
		log.Println(err)
		controller.ResFail(c, "操作失败")
		return
	}
	controller.ResSuccess(c, gin.H{"name": cateInfo.Name})
}

// Update
//
//	@Summary	更新
//	@Tags		后台-分类
//	@param		id				query		int		false	"分类id"
//	@param		name			query		string	false	"分类名"
//	@param		level			query		int		false	"分类级别"
//	@param		is_tab			query		int		false	"是否显示"
//	@param		sort			query		int		false	"排序"
//	@param		parent_category	query		int		false	"父级分类id"
//	@Success	200				{string}	json{"code","message"}
//	@Router		/admin/category/update [POST]
func Update(c *gin.Context) {
	models := model.CategoryInfo{}
	err := c.Bind(&models)
	if err != nil {
		log.Println(err)
		controller.ResErrSrv(c, err)
		return
	}
	cateInfo, err := model.UpdateCategory(&models)
	if err != nil {
		log.Println(err)
		controller.ResFail(c, "操作失败")
		return
	}
	controller.ResSuccess(c, gin.H{"id": cateInfo.ID})
}

// Delete
//
//	@Summary	删除数据
//	@Tags		后台-分类
//	@param		ids	query		int	false	"ids"
//	@Success	200	{string}	json{"code","message"}
//	@Router		/admin/category/delete [POST]
func Delete(c *gin.Context) {
	var ids []uint64
	err := c.Bind(&ids)
	if err != nil || len(ids) == 0 {
		log.Println(err)
		controller.ResErrSrv(c, err)
		return
	}
	category := model.Category{}
	err = category.Delete(ids)
	if err != nil {
		log.Println(err)
		controller.ResErrSrv(c, err)
		return
	}
	controller.ResSuccessMsg(c)
}
